//#include<signal.h>
//#include<stdio.h>
//#include<unistd.h>
//void sighandler(int sig){
//  printf("catch a signal: %d\n",sig);
//}
//int main(){
//  while(1){
//    struct sigaction act,oact;
//    act.sa_flags=0;
//    sigemptyset(&act.sa_mask);
//    act.sa_handler = sighandler;
//    sigaction(2,&act,&oact);
//  }
//  return 0;
//}
//#include<signal.h>
//#include<stdio.h>
//#include<unistd.h>
//void sighandler(int sig) {
//	printf("catch a signal: %d\n", sig);
//}
//int main() {
//	while (1) {
//		signal(2, sighandler);
//	}
//	return 0;
//}

#include <stdio.h>
#include <signal.h>
volatile int flag = 0;
void handler(int sig){
	printf("chage flag 0 to 1\n");
	flag = 1;
}
int main(){
	signal(2, handler);
	while (!flag);
	printf("process quit normal\n");
	return 0;
}
